<?php

/**
 * UserIdentity represents the data needed to identity a user.
 * It contains the authentication method that checks if the provided
 * data can identity the user.
 */
class UserIdentity extends CUserIdentity
{
	private $_id;
	public function authenticate()
	{
		$username = $this->username;
		$user = User::model()->find('username=?',array($username));
		if($user === null)
			$this->errorCode=self::ERROR_USERNAME_INVALID;
		else if(!$this->password)
			$this->errorCode=self::ERROR_PASSWORD_INVALID;
		else if($user->password !== $this->password)
			$this->errorCode=self::ERROR_PASSWORD_WRONG;
		else{
			$this->_id=$user->id;
			$this->username=$user->username;
			$this->errorCode=self::ERROR_NONE;
		}
		return $this->errorCode==self::ERROR_NONE;
	}

	public function check(){
		$username=$this->username;
		$user=User::model()->find('username=?',array($username));
		if(!$this->username)
			$this->errorCode=self::ERROR_USERNAME_INVALID;
		else if($user)
			$this->errorCode=self::ERROR_USERNAME_HAS;
		else if(!$this->password)
			$this->errorCode=self::ERROR_PASSWORD_INVALID;
		else
			$this->errorCode=self::ERROR_NONE;
		return $this->errorCode==self::ERROR_NONE;
	}

	public function getId(){
		return $this->_id;
	}
}
